package client.model;


import java.awt.Point;
import java.net.InetAddress;

public class Jogador{
    private int num; // numero do jogador
    private String nome;
    private String cor;
    private int pont; // guarda pontuação do jogador
    private Peao[] p;
    private boolean isServer;
    
    public Jogador(String nome, boolean isServer) {  
        this.nome = nome;
        this.isServer = isServer;
        
        p = new Peao[4];
        p[0] = new Peao();
        p[1] = new Peao();
        p[2] = new Peao();
        p[3] = new Peao();
        
        p[0].setEstaNaBase(true);      
        p[1].setEstaNaBase(true);
        p[2].setEstaNaBase(true);
        p[3].setEstaNaBase(true);
        
        isServer = false;
    }
    
    
    public String getNome(){
        return nome;
    }
    
    public void setNum(int n){
        num = n;
        switch (n){
            case 1: cor = "verde";
                break;
            case 2: cor = "amarelo";
                break;
            case 3: cor = "azul";
                break;
            case 4: cor = "vermelho";
                break;
            
        }
    }
    
    public int getNum(){
        return num;
    }
    
    public void setCor(String cor) {
        this.cor = cor;
    }

    public String getCor() {
        return cor;
    }
    
    public void setServer(boolean server){
        isServer = server;
    }
    
    public boolean getServer(){
        return isServer;
    }
    
    public void setPont(int pont) {
        this.pont = pont;
    }

    public int getPont() {
        return pont;
    }
    
    public void setPosPeao(int nPeao, int x, int y){
        p[nPeao-1].setPos(x,y);
    }
    
    public void setPosPeao(int nPeao, Point pos){
        p[nPeao-1].setPos(pos);
    }
    
    public Point getPosPeao(int n){
        return p[n-1].getPos();
    }
    
    // Peao volta a posicão inicial
     public void voltarPeao(){
        
    }
    
    // seta se o peão está na base ou não
    public void setPeaoNaBase(int numPeao, boolean valor){
        p[numPeao-1].setEstaNaBase(valor);
    }
     
    // consulta se o peão está na base, de acordo com o seu número
    public boolean peaoNaBase(int i){
        switch(i){
            case 1:
                return p[0].estaNaBase();
                
            case 2:
                return p[1].estaNaBase();
             
            case 3:
                return p[2].estaNaBase();
                
            case 4:
                return p[3].estaNaBase();
        }
        return false;
    }
     
    public boolean todosPeoesNaBase(){
        if(p[0].estaNaBase() && p[1].estaNaBase() && p[2].estaNaBase() && p[3].estaNaBase()){
            return true;
        }
        return false;
    }
    
    public boolean todosPeoesNoTabuleiro(){
        boolean aux = false;
        
        for (int i = 0; i < 4; i++) {
            // se existir um peão que esteja na base o retorno é falso
            if(p[i].estaNaBase()){
                aux = false;
            }
        }
        return aux; // retorna indicando que existe peao na base
    }
        
}
